Structured light systems transmit and receive light patterns, or spatial codes, to generate a depth map. The farther away an object is from the transmitter and receiver, the closer the received projection is from its original position at the receiver(s), as the outgoing projection and incoming projection are more parallel. Conversely, the closer an object is to the transmitter and receiver, the farther the received projection is from its original position at the receiver(s). Thus, the difference between received and transmitted codeword position gives the depth of the scene or object. Structured light systems use these relative depths to generate a depth map or a three dimensional representation of a scene. Depth map extraction is critical to many applications ranging from camera quality enhancement to computer vision.
Reflective or transparent surfaces in the scene can present challenges. For example, reflections can cause light to be reflected either away from the receiver or right into its optics. In both cases, the dynamic range of the structured light system can be exceeded. Transparent or semi-transparent surfaces also cause difficulties, as well as double reflections and inter-reflections that can compromise proper detection of the transmitted codewords. Also, translucent materials, such as skin, marble, wax, plants and human tissue may cause sub-surface scattering. In this context, there is a need to detect and correct outlier values in a depth map to provide an accurate generation of a depth map.